<?php

class FormularioHelper extends AppHelper {

    var $helpers = array('Html', 'Javascript', 'Form', 'Session');

    //var $Html = null;
    //var $Javascript = null;
    //var $Ajax = null;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion fechatime
      Esta Funcion recibe como parametros:
      $fecha: fecha en formato 'YYYY-MM-DD HH:MI:SS'
      $tipo: hora o fecha F, H
      Ejemplo:
      echo $this->Interfaz->fechatime('YYYY-MM-DD HH:MI:SS');
      echo $this->Interfaz->fechatime('YYYY-MM-DD HH:MI:SS','H');
     * */
    function fechatime($fecha = null, $tipo = null) {

        $tipo = strtoupper($tipo);

        if ($tipo == null) {
            $val = explode(' ', $fecha);
            $value = explode('-', $val[0]);
            if (isset($value[2]) && isset($value[1]) && isset($value[0])) {
                $hora = explode('.', $val[1]);
                $hora = explode(':', $hora[0]);
                if ($hora[0] > 12) {
                    $hora[0] = ($hora[0] - 12);
                    $ampm = 'PM';
                } else {
                    $hora[0] = $hora[0];
                    $ampm = 'AM';
                }
                $ho = $this->item($hora[0], 2) . ':' . $hora[1] . ':' . $hora[2] . ' ' . $ampm;

                $value = $value[2] . '-' . $value[1] . '-' . $value[0] . ' - ' . $ho;
            }
        } else if ($tipo == 'H') {
            $val = explode(' ', $fecha);
            $value = explode('-', $val[0]);
            $hora = explode('.', $val[1]);
            $value = $hora[0];
        } else if ($tipo == 'F') {
            $val = explode(' ', $fecha);
            $value = explode('-', $val[0]);
            if (isset($value[2]) && isset($value[1]) && isset($value[0])) {
                $value = $value[2] . '-' . $value[1] . '-' . $value[0];
            }
        } else {
            $value = 'ERROR';
        }

        return $value;
    }

    function botones($nuevo = array(), $filtro = array(), $pdf = array(), $exel = array(), $cal = array()) {

//echo $nuevo['url'];

        $mktime = mktime(date('his'));
        $carg = $mktime;

        $atrib = 'cursor:pointer; border: 0;height:16px; color:gray;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
        $atribhover = 'cursor:pointer; border: 0;height:18px; color:red;top:0;';
        $class = 'x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon x-btn-center';
//class='x-toolbar-item x-btn-default-small x-focus x-btn-focus x-btn-default-small-focus x-over x-btn-over x-btn-default-small-over over';
        $ruta = '../../img/iconos/icons/botonesmicro/';


        echo '
<style type="text/css">';

        if (isset($nuevo['url'])) {
            $atribnuevo = 'cursor:pointer; border: 0;height:16px; color:gray;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
            echo '
#buttonnuevolayoutinputzxc{' . $atribnuevo . 'background: url(\'' . $ruta . '1364925873_document-new.png\') no-repeat;}
#buttonnuevolayoutinputzxc:hover{' . $atribhover . ';background: url(\'' . $ruta . '1364925869_tests.png\') no-repeat;}';
        } else {
            $atribnuevo = 'cursor:url(\'' . $ruta . 'stock_not.png\'),url(\'' . $ruta . 'stock_not.png\'),auto;border: 0;height:16px; color:#BDBDBD;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
            echo '#buttonnuevolayoutinputzxc{' . $atribnuevo . 'background: url(\'' . $ruta . 'stock_not.png\') no-repeat;}';
        }


        if (isset($filtro['url'])) {
            $atribfiltro = 'cursor:pointer; border: 0;height:16px; color:gray;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
            echo '
#buttonfiltrolayoutinputzxc{' . $atrib . ';background: url(\'' . $ruta . '1364926098_old-edit-find.png\') no-repeat;}
#buttonfiltrolayoutinputzxc:hover{' . $atribhover . 'background: url(\'' . $ruta . '1364926098_old-edit-find.png\') no-repeat;}';
        } else {
            $atribfiltro = 'cursor:url(\'' . $ruta . 'stock_not.png\'),url(\'' . $ruta . 'stock_not.png\'),auto;border: 0;height:16px; color:#BDBDBD;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
            echo '#buttonfiltrolayoutinputzxc{' . $atribfiltro . ';background: url(\'' . $ruta . 'stock_not.png\') no-repeat;}';
        }


        if (isset($pdf['url'])) {
            echo '
#buttonpdflayoutinputzxc{' . $atrib . 'background: url(\'' . $ruta . '1364925864_pdf.png\') no-repeat;}
#buttonpdflayoutinputzxc:hover{' . $atribhover . 'background: url(\'' . $ruta . '1364925860_ACP_PDF 2_file_document.png\') no-repeat;}';
        } else {
            $atribpdf = 'cursor:url(\'' . $ruta . 'stock_not.png\'),url(\'' . $ruta . 'stock_not.png\'),auto;border: 0;height:16px; color:#BDBDBD;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
            echo '#buttonpdflayoutinputzxc{' . $atribpdf . ';background: url(\'' . $ruta . 'stock_not.png\') no-repeat;}';
        }
        if (isset($exel['url'])) {
            echo '
#buttonexellayoutinputzxc{' . $atrib . 'background: url(\'' . $ruta . '1364925880_application-vnd.ms-excel.png\') no-repeat;}
#buttonexellayoutinputzxc:hover{' . $atribhover . 'background: url(\'' . $ruta . '1364925880_application-vnd.ms-excel.png\') no-repeat;}';
        } else {
            $atribexel = 'cursor:url(\'' . $ruta . 'stock_not.png\'),url(\'' . $ruta . 'stock_not.png\'),auto;border: 0;height:16px; color:#BDBDBD;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
            echo '#buttonexellayoutinputzxc{' . $atribexel . ';background: url(\'' . $ruta . 'stock_not.png\') no-repeat;}';
        }

        if (isset($cal['url'])) {
            echo '
#buttoncallayoutinputzxc{' . $atrib . 'background: url(\'' . $ruta . '1364925877_application-vnd.ms-word.png\') no-repeat;}
#buttoncallayoutinputzxc:hover{' . $atribhover . 'background: url(\'' . $ruta . '1364925877_application-vnd.ms-word.png\') no-repeat;}';
        } else {
            $atribcal = 'cursor:url(\'' . $ruta . 'stock_not.png\'),url(\'' . $ruta . 'stock_not.png\'),auto;border: 0;height:16px; color:#BDBDBD;top:0; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 0.8em;font-weight:bold;';
            echo '#buttoncallayoutinputzxc{' . $atribcal . ';background: url(\'' . $ruta . 'stock_not.png\') no-repeat;}';
        }

        echo '
</style>

';

        echo '<script type="text/javascript">';

        $divcsdde = 'tabs_1';
        if (isset($nuevo['update'])) {
            $iddiva = $nuevo['update'];
        }
        else
            $iddiva = $divcsdde;
        if (isset($nuevo['url'])) {
            if (isset($nuevo['permiso']) && $nuevo['permiso'] == 1) {
                $on05 = 'onclick=\"' . $this->ajax($nuevo['url'], $iddiva) . '\"';
            } else {
                //$on05='onclick=\"'.$this->ajax($nuevo['url'],$iddiva).'\"';
                $on05 = 'onclick=\"' . $this->ajax(PRINCIPAL . "/permiso/" . DOCULTO, DOCULTO) . '\"';
            }

            $disabbleda = '';
        } else {
            $on05 = '';
            $disabbleda = 'disabled';
        }


        echo 'document.getElementById("buttonnuevolayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttonnuevolayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Nuevo\" ' . $on05 . ' ' . $disabbleda . '/></div>";';


        if (isset($filtro['update'])) {
            $iddivs = $filtro['update'];
        }
        else
            $iddivs = $divcsdde;
        if (isset($filtro['url'])) {
            $disabbledb = '';
            if (isset($filtro['permiso']) && $filtro['permiso'] == 1) {
                $on04 = 'onclick=\"' . $this->ajax($filtro['url'], $iddivs) . '\"';
            } else {
                $on04 = 'onclick=\"' . $this->ajax($filtro['url'], $iddiva) . '\"';
                //	$on04='onclick=\"'.$this->ajax(PRINCIPAL."/permiso/".DOCULTO,DOCULTO).'\"';
            }
        } else {
            $on04 = '';
            $disabbledb = 'disabled';
        }

        echo 'document.getElementById("buttonfiltrolayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttonfiltrolayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Filtro\" ' . $on04 . ' ' . $disabbledb . '/></div>";';


        if (isset($pdf['update']) and $pdf['update'] == 'descargar') {
            $iddivd = $pdf['update'];
            $pdfurl = explode('/', $pdf['url']);
            $pdfurlfinal = $pdfurl[0] . '/' . $pdfurl[1] . '/' . $pdf['update'];
            for ($i = 2; $i < count($pdfurl); $i++) {
                $pdfurlfinal.='/' . $pdfurl[$i];
            }
            if (isset($pdf['url'])) {
                if (isset($pdf['permiso']) && $pdf['permiso'] == 1) {
                    $on03 = 'onClick=\"window.open(\'' . $pdfurlfinal . '\',\'\',\'900,600\'); return false;\"';
                } else {
                    //$on03='onClick=\"window.open(\''.$pdfurlfinal.'\',\'\',\'900,600\'); return false;\"';
                    $on03 = 'onclick=\"' . $this->ajax(PRINCIPAL . "/permiso/" . DOCULTO, DOCULTO) . '\"';
                }
                $disabbledc = '';
            } else {
                $on03 = '';
                $disabbledc = 'disabled';
            }
            echo 'document.getElementById("buttonpdflayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttonpdflayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Pdf\" ' . $on03 . ' ' . $disabbledc . '/></div>";';
        } else if (isset($pdf['update'])) {
            $pdfurl = explode('/', $pdf['url']);
            $pdfurlfinal = $pdfurl[0] . '/' . $pdfurl[1] . '/' . $pdf['update'];
            for ($i = 2; $i < count($pdfurl); $i++) {
                $pdfurlfinal.='/' . $pdfurl[$i];
            }
            if (isset($pdf['update'])) {
                $iddivx = $pdf['update'];
            }
            else
                $iddivx = $divcsdde;
            if (isset($pdf['url'])) {
                if (isset($pdf['permiso']) && $pdf['permiso'] == 1) {
                    $on03 = 'onclick=\"' . $this->ajax($pdfurlfinal, $iddivx) . '\"';
                } else {
                    //	$on03='onclick=\"'.$this->ajax($pdfurlfinal,$iddivx).'\"';
                    $on03 = 'onclick=\"' . $this->ajax(PRINCIPAL . "/permiso/" . DOCULTO, DOCULTO) . '\"';
                }
                $disabbledc = '';
            } else {
                $on03 = '';
                $disabbledc = 'disabled';
            }
            echo 'document.getElementById("buttonpdflayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttonpdflayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Pdf\" ' . $on03 . ' ' . $disabbledc . '/></div>";';
        } else {
            $on03 = '';
            $disabbledc = 'disabled';
            echo 'document.getElementById("buttonpdflayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttonpdflayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Pdf\" ' . $on03 . ' ' . $disabbledc . '/></div>";';
        }

        if (isset($exel['update']) and $exel['update'] == 'descargar') {
            $iddivd = $exel['update'];
            if (isset($exel['url'])) {
                if (isset($exel['permiso']) && $exel['permiso'] == 1) {
                    $on02 = 'onClick=\"window.open(\'' . $exel['url'] . '\',\'\',\'900,600\'); return false;\"';
                } else {
                    //	$on02='onClick=\"window.open(\''.$exel['url'].'\',\'\',\'900,600\'); return false;\"';
                    $on02 = 'onclick=\"' . $this->ajax(PRINCIPAL . "/permiso/" . DOCULTO, DOCULTO) . '\"';
                }
                $disabbledd = '';
            } else {
                $on02 = '';
                $disabbledd = 'disabled';
            }
            echo 'document.getElementById("buttonexellayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttonexellayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Excel\" ' . $on02 . ' ' . $disabbledd . '/></div>";';
        } else if (isset($exel['update'])) {
            if (isset($exel['update'])) {
                $iddivd = $exel['update'];
            }
            else
                $iddivd = $divcsdde;
            if (isset($exel['url'])) {
                if (isset($exel['permiso']) && $exel['permiso'] == 1) {
                    $on02 = 'onclick=\"' . $this->ajax($exel['url'], $iddivd) . '\"';
                } else {
                    //	$on02='onclick=\"'.$this->ajax($exel['url'],$iddivd).'\"';
                    $on02 = 'onclick=\"' . $this->ajax(PRINCIPAL . "/permiso/" . DOCULTO, DOCULTO) . '\"';
                }
                $disabbledd = '';
            } else {
                $on02 = '';
                $disabbledd = 'disabled';
            }
            echo 'document.getElementById("buttonexellayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttonexellayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Excel\" ' . $on02 . ' ' . $disabbledd . '/></div>";';
        } else {
            $on02 = '';
            $disabbledd = 'disabled';
            echo 'document.getElementById("buttonexellayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttonexellayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Excel\" ' . $on02 . ' ' . $disabbledd . '/></div>";';
        }
//;
        if (isset($cal['update'])) {
            $iddivf = $cal['update'];
        }
        else
            $iddivf = $divcsdde;
        if (isset($cal['update']) and $cal['update'] == 'descargar') {
            $iddivd = $cal['update'];
            if (isset($cal['url'])) {
                if (isset($cal['permiso']) && $cal['permiso'] == 1) {
                    $on01 = 'onClick=\"window.open(\'' . $cal['url'] . '\',\'\',\'900,600\'); return false;\"';
                } else {
                    //	$on01='onClick=\"window.open(\''.$cal['url'].'\',\'\',\'900,600\'); return false;\"';
                    $on01 = 'onclick=\"' . $this->ajax(PRINCIPAL . "/permiso/" . DOCULTO, DOCULTO) . '\"';
                }
                $disabbledd = '';
            } else {
                $on01 = '';
                $disabbledd = 'disabled';
            }
            echo 'document.getElementById("buttoncallayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttoncallayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Cal\" ' . $on01 . ' ' . $disabbledd . '/></div>";';
        } else if (isset($cal['update'])) {
            if (isset($cal['update'])) {
                $iddivd = $cal['update'];
            }
            else
                $iddivd = $divcsdde;
            if (isset($cal['url'])) {
                if (isset($cal['permiso']) && $cal['permiso'] == 1) {
                    $on01 = 'onclick=\"' . $this->ajax($cal['url'], $iddivd) . '\"';
                } else {
                    //	$on01='onclick=\"'.$this->ajax($cal['url'],$iddivd).'\"';
                    $on01 = 'onclick=\"' . $this->ajax(PRINCIPAL . "/permiso/" . DOCULTO, DOCULTO) . '\"';
                }
                $disabbledd = '';
            } else {
                $on01 = '';
                $disabbledd = 'disabled';
            }
            echo 'document.getElementById("buttoncallayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttoncallayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Cal\" ' . $on01 . ' ' . $disabbledd . '/></div>";';
        } else {
            $on01 = '';
            $disabbledd = 'disabled';
            echo 'document.getElementById("buttoncallayout").innerHTML = "<div class=\"' . $class . '\"><input id=\"buttoncallayoutinputzxc\" type=\"button\" value=\"&nbsp;&nbsp;&nbsp;&nbsp;Cal\" ' . $on01 . ' ' . $disabbledd . '/></div>";';
        }
        echo '</script>';
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion para convertir a formato de moneda
      Esta Funcion recibe como parametros:
      $numero: numero a convertir
      $cant:  cantidad de decimales por defecto 2
      $separador: separador del formato en miles ejem: 1,263.00 - 1.263,00

      Ejemplo:
      echo $this->Interfaz->miles(123456,2,'.'); // devuelve  1.263,00
      echo $this->Interfaz->miles(123456); // devuelve  1.263,00

     * */
    function miles($numero, $cant = 2, $separador = '.') {
        if ($separador == '.') {
            $s1 = ',';
            $s2 = '.';
        } else {
            $s1 = '.';
            $s2 = ',';
        }
        return number_format($numero, $cant, $s1, $s2);
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion para convertir a formato de Postgres un Formato Moneda
      Esta Funcion recibe como parametros:
      $numero: numero a convertir en formato (2.165,48) o (2165,48)

      Ejemplo:
      echo $this->Interfaz->miles_postgres(1.234,56); // devuelve  1234.56
     * */
    function miles_postgres($numero) {
        return str_replace(',', '.', str_replace('.', '', $numero));
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion para mostrar imagenes al igual que <img>
      Esta Funcion recibe como parametros:
      $imagen: ruta de la imagen
      $width: tama&ntildeo de la imagen en width
      $height: tama&ntildeo de la imagen en height
      $id: identificador unico para el elemento de no existir se toma en nombre de la imagen con la ruta
      $title: titulo de la imagen
      $otros: array para otros atributos validos para una imagen, ejemplo onclick, onfocus...
      Ejemplo:
      echo $this->Interfaz->img('/img/agropatria.png','200','200',null,'title');
      echo $this->Interfaz->img('/img/agropatria.png','200','200',null,'title',array('Onclick'=>'alert("holamundo");'));

     * */
    function img($imagen, $id = null, $title = null, $width = '20', $height = '20', $otros = array()) {
        if (!isset($id)) {
            $id = str_replace('/', '', $imagen);
            $id = str_replace('.', '', $id);
        }

        if (count($otros) > 0) {
            $otros['id'] = $id;
            $otros['align'] = 'absmiddle';
            $otros['alt'] = $title;
            $otros['title'] = $title;
            $otros['border'] = '0';
            $otros['width'] = $width;
            $otros['height'] = $height;
            return $this->Html->image($imagen, $otros);
        }
        else
            return $this->Html->image($imagen, array('id' => $id, 'align' => 'absmiddle', 'alt' => $title, 'title' => $title, 'border' => '0', 'width' => $width, 'height' => $height));
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
     * Funcion para complementar numero en listados ejemplo 1 -> 01
     * Esta Funcion recibe como parametros:
     * $entero: numero a completar
     * $largo:  cantidad de digitos a visualizar
     * $mascara:  caracter a utilizar en la completacion por defecto(0)
     * $aliniacion:  donde se va a visializar la completacion (I=>Izquierda,D=Derecha,A=Ambos)
     * Devuelve el numero ingresado con ceros a la izquierda dependiendo del
     * largo deseado de la cadena de salida.
     *
     * Ejemplo:
     *     echo $this->Interfaz->item(12,4);
     *     su salida sera 0012
     *     echo $this->Interfaz->item(12,4,'*','D');
     *     su salida sera 12**
     * */
    function item($entero = 0, $largo = 2, $mascara = "0", $aliniacion = "I") {
        // Limpiamos por si se encontraran errores de tipo en las variables
        /* $entero = (int)$entero;
          $largo = (int)$largo;
          $relleno = '';

          if (strlen($entero) < $largo) {
          $relleno = str_repeat('0', $largo - strlen($entero));
          }
          return $relleno . $entero;
         */
        if (strtoupper($aliniacion) == 'D')
            $ali = 1;
        else if (strtoupper($aliniacion) == 'A')
            $ali = 2;
        else
            $ali = 0;
        return str_pad($entero, $largo, $mascara, $ali);
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
     * Funcion para ocultar un valor para ciertos elementos
     * Ejemplo: 12 = 'VmtaYVUxTnNRbEpRVkRBOQ=='
     *        echo $this->Interfaz->id(12); 
     * */
    function id($id) {
        /*$id = base64_encode($id);
        $id = base64_encode($id);
        $id = base64_encode($id);
        $id = base64_encode($id);
        $id = base64_encode($id);
        return $id;*/
        $idCodificado = $id;
        $num = mt_rand(0, 10);

        for ($i = 1; $i <= 5; $i++) {
            $idCodificado = base64_encode($idCodificado);
        }

        $alpha_array = array('Y', 'D', 'U', 'R', 'P', 'S', 'B', 'M', 'A', 'T', 'H');
        $idCodificado = $idCodificado . "+" . $alpha_array[$num];
        $idCodificado = preg_replace('/=/', '', base64_encode($idCodificado));
        return $idCodificado;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion celendario
      Esta Funcion recibe como parametros:
      $campo1: donde se monta el value resultante
      $campo: quien hace el llamado del calendario
      $min: valor minimo a mostrar de fechas
      $max: valor maximo a mostrar de fechas
      $extra: id de un campo que almacena la fecha minima de incicio
      $funcion: funcion javascritp en caso de ser necesaria
      Ejemplo:
      echo $this->For->calendario('fecha_n','','01-01-1900',date('d-m-Y'),"alert('holamundo');");
      echo $this->For->calendario('fecha_n','fecha_n');
     * */
    function calendario($campo1 = 'vacio', $campo = 'vacio', $min = 'vacio', $max = 'vacio', $funcion = '') {
        if (empty($funcion))
            $funcion = '';
        $id = 'calendar' . mktime(date("i")) . '_js';
        if ($campo == '' or $campo == NULL or $campo == 'vacio')
            $campo = $campo1 . 'calendariolevantar';
        if ($campo1 == 'vacio' or $campo1 == '' or $campo1 == null)
            $campo1 = $campo;
        if ($min == '' or $min == NULL or $min == 'vacio')
            $min = '01-01-1920';
        if ($max == '' or $max == NULL or $max == 'vacio')
            $max = date('d-m-Y');
        $min = explode('-', $min);
        $minimo = $min[2] . $min[1] . $min[0];
        $max = explode('-', $max);
        $maximo = $max[2] . $max[1] . $max[0];
        $valor = "";
        $valor.="
	<div id='div_calendario'style='display:none;' align='center'>
	<script type='text/javascript'>
		var DISABLED_DATES" . $campo . " = {
		    19001212: true,
		    19001213: true,
		    19001211: true,
		    19001215: true
		};
		var DATE_INFO" . $campo . " = {
		  20090507: { klass: 'highlight', tooltip: 'MENSAJE UNO' },
		  20090508: { klass: 'highlight', tooltip: 'MENSAJE NUMERO 2' }
		};
		var CAKE_JSCAL" . $campo . " = Calendar.setup({
        	//cont: 'f_rangeStart', // DEJAR CARGADO EN UN DIV
			animation: true,   // ANIMACION 
			bottomBar: false,  // MARCAR BOTON DE HOY
		    weekNumbers: true, // NUMERO DE SEMANA
			min: " . $minimo . ",  // FECHA MINIMA
    		max: " . $maximo . ",  // FECHA MAXIMA
			name: '" . $id . "',
			id: '" . $id . "',
          	//selectionType: Calendar.SEL_MULTIPLE, //SELECCION MULTIPLE
          	// showTime: 12, // MUESTRA LA HORA EN FORMATO DE HORA 12 24
		    //	dateInfo : getDateInfo, // MUY BUENA INFORMACION EN LOS DIAS DEL ARRAY DATE_INFO Y LOS DE IF()
			disabled : function(date) {       
				//if (date.getDay() == 3) {return true;} else {return false;}    // DIAS DESHABILITADOS POR DIA DE SEMANA 
				date = Calendar.dateToInt(date); return date in DISABLED_DATES" . $campo . ";// DIAS DESHABILITADOS DEL ARRAY DISABLED_DATES 
 		    },// DIAS DESHABILITADOS DEL ARRAY DISABLED_DATES 
			onSelect   : function() { this.hide(); " . $funcion . " } // QUITA EL CALENDARIO CON UN CLICK
		})
	    //   CAKE_JSCAL" . $campo . ".args.min = Calendar.intToDate('20130201'); //CARGA VALOR MINIMO PERO CON LA ACCION
	    //   CAKE_JSCAL" . $campo . ".args.max = Calendar.intToDate('20130210'); //CARGA VALOR MAXIMO PERO CON LA ACCION
	    //   CAKE_JSCAL" . $campo . ".manageFields('f_rangeStart_trigger', 'f_rangeStart', '%d-%m-%Y');
	  	CAKE_JSCAL" . $campo . ".manageFields('" . $campo . "', '" . $campo1 . "', '%d-%m-%Y');
		
		function getDateInfo(date, wantsClassName) {
	  		var as_number = Calendar.dateToInt(date);
			if (String(as_number).indexOf('0521') == 4) { return { klass: 'birthday', tooltip: 'MENSAJE ESPECIFICO 1' };}//MSN LOS 0521
			if (String(as_number).indexOf('0519') == 4) { return { klass: 'birthday', tooltip: 'MENSAJE ESPECIFICO 2' };}//MSN LOS 0519
			if (as_number >= 20090522 && as_number <= 20090524)//MSM DESDE  20090522 AL 20090524
			return {
			      klass   : 'highlight2',
			      tooltip : '<div style=\'text-align: center\'>%d-%m-%Y (%A)' +
				'<br>MENSAJE EN CALENDARIO</div>'
		    };
	  		return DATE_INFO" . $campo . "[as_number];
		};
    </script>
	</div>
";

        echo $valor;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion font
      Esta Funcion recibe como parametros:
      $texto: texto a cambiar
      $color: color en hexadecimal
      $size: tamaño de la fuente
      Ejemplo:
      echo $this->Interfaz->font('holamundo');
      echo $this->Interfaz->font('holamundo','#FFFFFF','18px');
     * */
    function font($texto = '', $color = '#545454', $size = '12px') {
        return $valor = "<font color='$color' style='font-size:$size;'>$texto</font>";
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion fecha
      Esta Funcion recibe como parametros:
      $fecha: fecha en formato 'Y-m-d'
      $size: tamaño de la fuente
      Ejemplo:
      echo $this->Interfaz->fecha(date('Y-m-d'));
      echo $this->Interfaz->fecha(date('Y-m-d'),'18px');
     * */
    function fecha($fecha = null, $size = null) {
        $value = explode('-', $fecha);
        if (isset($value[2]) && isset($value[1]) && isset($value[0]))
            $value = $value[2] . '-' . $value[1] . '-' . $value[0];
        else
            $value = '';
        if ($size)
            return $value = "<font color=\'#545454\' style=\'font-size:$size;\'>$value</font>";
        else
            return $value;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion input
      Esta Funcion recibe como parametros:
      $nombre: nombre del input
      $tamanio: size del campo, nota cuando es tipo password colocar mucho mas grande
      $tipo: tipo de validacion ('texto','direccion','todo','numerico','clave','celular','telefono','correo','moneda','rif','cedula','select','fecha','textarea')
      $class: css (inputn, selectn, inputonly, selectonly)
      $minimo: valor minimo escrito para el campo "0"
      $maximo=10
      $value: valor por defecto en el campo
      $readonly: readonly valores 0 y 1 para su uso
      $requerido: si es 1 este campo es requerido
      $texto:ayuda Json texto descriptivo
      $placeholder= mensaje que aparecera en el campo
      $otros=arreglo de otros posibles atributos por ejemplo array('OnClick'=>"alert('holamundo')")
      Nota el evente onkeyup no puede ser utilizado en ningun caso
      para los tipo cedula o rif el evento onmouseout no puede ser utilizado
      para los tipo fecha el evento onfocus no puede ser utilizado
      Ejemplo:
      echo $this->Interfaz->input('nombre',12,'texto','inputn',0,10,'value',0,1,'ayuda del campo nombre','holamundo',array('OnClick'=>"alert('holamundo')"));
      echo $this->Interfaz->input('nombre',12,'telefono','inputn',0,12,'value',0,1,'yuda del campo nombre','holamundo');
     * */
    function input($nombre = null, $tamanio, $tipo, $class, $minimo = 0, $maximo = 10, $value = null, $readonly = 0, $requerido = 1, $texto = 'nada', $placeholder = '', $otros = array(), $pre = 'nada') {
        if (!isset($nombre))
            $nombre = 'nombre_campo';
        if ($nombre != null or $nombre != 'nombre_campo') {
            if ($readonly === 1)
                $readonly = true;
            else
                $readonly = false;
            if (count($otros) > 0) {
                $otros['id'] = (isset($otros['id'])) ? $otros['id'] : $nombre;
                $otros['name'] = $nombre;
                $otros['value'] = $value;
                $otros['readonly'] = $readonly;
                $otros['label'] = false;
                $otros['div'] = false;
                $otros['error'] = false;
                $otros['size'] = $tamanio;
                $otros['class'] = $class;
                $otros['maxlength'] = $maximo;
                $otros['placeholder'] = $placeholder;
                $otros['onkeyup'] = "return validate(event,this.value,'$tipo','{$otros['id']}','$pre');";
            }

            $valor = "";
            //if($texto!='nada') $this->Json->tipsayuda($nombre,$texto);
            if ($pre == 'nada')
                $mids = $nombre . "_em";
            else
                $mids = $nombre . $pre . "_em";

            if ($tipo == 'cedula') {
                if (count($otros) > 0) {
                    $otros['type'] = 'text';
                    $otros['onmouseout'] = "return ordenar(event,this.value,'$tipo','$nombre','$pre');";
                    $valor.=$this->Form->input($nombre, $otros);
                } else {
                    $valor.=$this->Form->input($nombre, array('id' => $nombre, 'name' => $nombre, 'value' => $value, 'readonly' => $readonly, 'label' => false, 'type' => 'text', 'div' => false, 'error' => false, 'size' => $tamanio, 'class' => $class, 'maxlength' => $maximo, 'onkeyup' => "return validate(event,this.value,'$tipo','$nombre','$pre');", 'placeholder' => $placeholder, 'onmouseout' => "return ordenar(event,this.value,'$tipo','$nombre','$pre');"));
                }
            } else if ($tipo == 'clave') {
                if (count($otros) > 0) {
                    $otros['type'] = 'password';
                    $valor.=$this->Form->input($nombre, $otros);
                } else {
                    $valor.=$this->Form->input($nombre, array('id' => $nombre, 'name' => $nombre, 'value' => $value, 'readonly' => $readonly, 'label' => false, 'type' => 'password', 'div' => false, 'error' => false, 'size' => $tamanio, 'class' => $class, 'maxlength' => $maximo));
                    //$valor.=$this->Form->input($nombre, array('id' => $nombre, 'name' => $nombre, 'value' => $value, 'readonly' => $readonly, 'label' => false, 'type' => 'password', 'div' => false, 'error' => false, 'size' => $tamanio, 'class' => $class, 'maxlength' => $maximo, 'onkeyup' => "return validate(event,this.value,'$tipo','$nombre','$pre');"));
                }
            } else if ($tipo == 'textarea') {
                if (count($otros) > 0) {
                    foreach ($otros as $key => $value) {
                        $opcion[$key] = '';
                        if ($key != 'size')
                            $miarray[$key] = $value;
                    }
                    $miarray['class'] = $miarray['class'] . "textarea";
                    if (!isset($miarray['rows']))
                        $miarray['rows'] = 2;
                    if (!isset($miarray['cols']))
                        $miarray['cols'] = 50;
                    $valor.=$this->Form->textarea($nombre, $miarray);
                }
                else {
                    $valor.=$this->Form->textarea($nombre, array('id' => $nombre, 'name' => $nombre, 'value' => $value, 'readonly' => $readonly, 'label' => false, 'error' => false, 'rows' => '2', 'cols' => '50', 'class' => $class . 'textarea', 'maxlength' => $maximo, 'onkeyup' => "return validate(event,this.value,'$tipo','$nombre','$pre');"));
                }
            } else if ($tipo == 'moneda') {
                if (count($otros) > 0) {
                    $otros['type'] = 'text';
                    $valor.=$this->Form->input($nombre, $otros);
                } else {
                    if ($placeholder == '')
                        $placeholder = '0,00';
                    $valor.=$this->Form->input($nombre, array('id' => $nombre, 'name' => $nombre, 'value' => $value, 'readonly' => $readonly, 'label' => false, 'type' => 'text', 'div' => false, 'error' => false, 'size' => $tamanio, 'class' => $class, 'maxlength' => $maximo, 'onkeyup' => "return validate(event,this.value,'$tipo','$nombre','$pre');", "placeholder" => $placeholder));
                }
            }

            else if ($tipo == 'fecha') {
                if (isset($value) and $value != '') {
                    $value = explode('-', $value);
                    $value = $value[2] . '-' . $value[1] . '-' . $value[0];
                }
                if (count($otros) > 0) {
                    $otros['type'] = 'text';
                    $otros['maxlength'] = 10;
                    $otros['onfocus'] = "return liacamposfn('$nombre','$pre');";
                    $valor.=$this->Form->input($nombre, $otros)/* . ' <img id="calendariolevantar" src="/img/iconos/calendarios/calendario2.ico" border="0" align="absmiddle" style="cursor:pointer;">'*/;
                } else {
                    $valor.=$this->Form->input($nombre, array('id' => $nombre, 'name' => $nombre, 'value' => $value, 'readonly' => $readonly, 'label' => false, 'type' => 'text', 'div' => false, 'error' => false, 'size' => $tamanio, 'class' => $class, 'maxlength' => 10, 'onkeyup' => "return validate(event,this.value,'$tipo','$nombre','$pre');", 'placeholder' => $placeholder, 'onfocus' => "return liacamposfn('$nombre','$pre');"))/* . ' <img id="' . $nombre . 'calendariolevantar" src="/img/iconos/calendarios/calendario2.ico" border="0" align="absmiddle" style="cursor:pointer;">'*/;
                }
            } else {
                if (count($otros) > 0) {
                    $otros['type'] = 'text';
                    $valor.=$this->Form->input($nombre, $otros);
                } else {
                    $valor.=$this->Form->input($nombre, array('id' => $nombre, 'name' => $nombre, 'value' => $value, 'readonly' => $readonly, 'label' => false, 'type' => 'text', 'div' => false, 'error' => false, 'size' => $tamanio, 'class' => $class, 'maxlength' => $maximo, 'onkeyup' => "return validate(event,this.value,'$tipo','$nombre','$pre');", "placeholder" => $placeholder));
                }
            }
        }
        $em = $this->tipsrequerido($requerido, $nombre);
        //$valor .= $em . '<span id="' . $mids . '">&nbsp;</span>';
        return $valor;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion select
      Esta Funcion recibe como parametros:
      $nombre: nombre de la lista desplegable
      $tamanio: size del campo
      $class: css (inputn, selectn, inputonly, selectonly)
      $lista: lista de opciones de la lista desplegable es un arreglo de la siguiente forma $opciones=array('indice o valrque se quiere almacenar'=>'valor a mostrar')
      $value=valor o elemento que estara seleccionado por defecto
      $texto: ayuda Json texto descriptivo
      $readonly: readonly valores 0 y 1 para su uso
      $requerido: si es 1 este campo es requerido
      $otros=arreglo de otros posibles atributos por ejemplo array('OnClick'=>"alert('holamundo')")
      Nota el evento onfocus no puede ser utilizado
      Ejemplo:
      $lista=array(1=>"dato1",2=>"dato2",3=>"dato3");
      echo $this->Interfaz->select('nombre',11,'selectn',$lista,'','dato2',0,1,array('OnChange'=>"alert('holamundo')"));
      echo $this->Interfaz->select('nombre',11,'selectn',$lista,'','dato1',0,1);
     * */
    function select($nombre = null, $tamanio, $class, $lista, $value, $texto = 'nada', $readonly, $requerido = 1, $otros = array(), $pre = 'nada', $saltos = false) {
        $texto = 'nada';
        if ($readonly === 1)
            $readonly = true;
        else
            $readonly = false;
        $valor = "";
        if ($texto != 'nada')
            $this->Json->tipsayuda($nombre, $texto);
        if ($pre == 'nada')
            $mids = $nombre . "_em";
        else
            $mids = $nombre . $pre . "_em";

        if ($nombre != null) {

            if (count($otros) > 0) {
                $otros['id'] = (isset($otros['id'])) ? $otros['id'] : $nombre;
                $otros['name'] = $nombre;
                $otros['value'] = $value;
                $otros['class'] = $class . ' selectcolors';
                //$otros['empty'] = "";
                $otros['disabled'] = $readonly;
                //$otros['onfocus'] = "return validate(event,this.value,'select','$nombre','$pre');";
                $valor.=$this->Form->select($nombre, $lista, $otros);
            } else {
                $valor.=$this->Form->select($nombre, $lista, array('id' => $nombre, 'name' => $nombre, 'empty' => false, 'value' => $value, 'class' => $class . ' selectcolors', 'disabled' => $readonly, 'onfocus' => "return validate(event,this.value,'select','$nombre','$pre');"));
            }
        }
        
        if($saltos){
            $valor = str_replace (',&#039;nada&#039;);">', ',&#039;nada&#039;);">\n\\', $valor);
            $valor = str_replace ('selectcolors">', 'selectcolors">\n\\', $valor);
            $valor = str_replace ('</option>', '</option>\n\\', $valor);
        }
        
        $em = $this->tipsrequerido($requerido, $nombre);
        //$valor .= $em . '<span id="' . $mids . '">&nbsp;</span>';
        return $valor;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion filset
      Esta Funcion recibe como parametros:
      $title: Titulo del FilSet o Marco
      $br: Salto de lineas que habran entre el filset y el contenido del mismo
      $border: 1 para indicar que el marco tiene borde 0 caso contrario
      $color: color del Border
      $head_img: 1 para indicar imagen estandar, 0 o null no muestra imagen y SRC "ruta de una imagen especifica"
      $head_title: titulo en rojo de ser necesario ejemplo Paso 1/2, Paso 2/2 "limite superior derecho"
      $width:tamaño de la imagen por defecto 120px
      $height:tamaño de la imagen por defecto 50px
     * */
    function filset($title = null, $br = 0, $border = 0, $color = 'gray', $head_img = null, $head_title = null, $width = '120px', $height = '50px') {
        if (isset($title)) {
            $bx = '';
            for ($i = 0; $i < $br; $i++) {
                $bx.='<br />';
            }
            if (!isset($head_img) or $head_img == 0)
                $imagen = '';
            else if ($head_img == 1)
                $imagen = $this->Html->image('agropatriahelper.png', array('border' => '0', 'width' => $width, 'height' => $height, 'align' => 'absmiddle'));
            else
                $imagen = $this->Html->image($head_img, array('border' => '0', 'width' => $width, 'height' => $height, 'align' => 'absmiddle'));
            if (!isset($border) or $border == '' or $border == null)
                $border = 0;
            if (!isset($color) or $color == '' or $color == null)
                $color = 'gray';
            if (!isset($head_title) or $head_title == '' or $head_title == null)
                $head_title = '';
            $valor = "$bx <table border='" . $border . "' cellpadding='0' cellspacing='0' width='100%' align='center'>";
            if (isset($head_img) && $head_img > 0) {
                $valor.="
				<tr>
	 	  			<td align='left'>
				 		<table border='0' cellpadding='0' cellspacing='0' width='95%' align='center'>
						 	<tr>
						 	  	<td align='left' width='1px'>&nbsp;</td>
								<td align='left'>" . $imagen . "</td>
					 	  		<td align='left'> 	</td>
						 	  	<td align='right' valign='top'>
									<font color='red' size='5px' id='pasofuncionfilset'>&nbsp;" . $head_title . "</font>
								</td>
							</tr>
						</table>
					</td>
				</tr>";
            }
            $valor.="<tr>
		 	  		<td align='center'>  
	 	    			<fieldset class='fieldset_helper fieldset_helpercolorcake' style='border: 1px " . $color . " solid; '>
		 	    			<legend align='left' class='legend_helper legend_helpercolorcake'  style='border: 1px " . $color . " solid;'>&nbsp;&nbsp;&nbsp;" . $title . "&nbsp;&nbsp;&nbsp;</legend>";
        } else {
            $valor = "</td></tr></table><br /></fieldset>";
        }
        return $valor;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion identificador
      Ejemplo:
      $mktime=$this->Interfaz->identificador(); devuelve algo asi 1343523452332
     * */
    function identificador() {
        return $mktime = mktime(date('his'));
        ;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion table
      Esta Funcion recibe como parametros:
      $nombre: nombre de la tabla esto normalmente se pasa el mktime creado en la vista
      Nota $nombre que igual a id="$nombre"
      Nota de no recibir ningun paramentro cierra la tabla
      Ejemplo:
      echo $this->Interfaz->table($nombre); devuelve <table> + abritubos
      echo $this->Interfaz->table(); devuelve < /table>
     * */
    function table($nombre = null) {
        if (isset($nombre) and $nombre != '') {
            echo "<table border='1' cellpadding='0' cellspacing='0' width='100%' align='center' style='border: #999999 1px solid;' id='" . $nombre . "'>";
        }
        else
            echo "</table>";
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion tr
      Esta Funcion recibe como parametros:
      $mktime: lo devuelto por identificador unico esto usado para los id
      $color: color de fondo
      $id: identificador unico del tr
      $mayuscula: 1 coloca en mayuscula el texto, otro valor no hace nada
      Nota de no recibir ningun paramentro cierra el tr
      Ejemplo:
      echo $this->Interfaz->tr($nombre); devuelve <tr> + abritubos
      echo $this->Interfaz->tr(); devuelve < /tr>
     * */
    function tr($mktime = null, $color = null, $id = '', $mayuscula = 0) {
        if (isset($mktime) and $mktime != '') {
            if ($id == '')
                $id = 'sin_id';
            if ($color == '' or $color == null or !isset($color)) {
                $color = '#cccccc';
                $class = '';
            } else {
                $class = 'lis_selec';
            }
            if ($mayuscula == 1)
                $mayus = 'text-transform: uppercase;';
            else
                $mayus = '';
            echo "<tr bgcolor='$color' align='center' style='cursor:pointer; $mayus' id='" . $id . "' class='$class'>";
        }
        else
            echo "</tr>";
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion td
      Esta Funcion recibe como parametros:
      $texto: texto a colocar dentro del td
      $busq: esta variable es utilizada por el buscador y corolea deacuerdo a la configuracion
      $align: alineacion de del texto (l,r,c)
      $size: tamaño del td
      $id: indentificador del td normalmente asignado por $i, en caso de no existir queda asi "sin_id"
      $numero: partida para cortar texto casi siempre es en cero
      $cantidad: cantidad de texto a mostrar de ser mayor a este valor intectua la funcion leermas
      $colspan: colspan del td
      $rowspan: rowspan del td
      Nota los td utilizan la etiqueta <font> esto para adaptar la vista al frameword
      Ejemplo:
      echo $this->Interfaz->td($nombre); devuelve <td> + abritubos + < /td>
     * */
    function td($texto = '', $busq = '', $align = '', $width = '', $id = '', $numero = 0, $cantidad = 25, $colspan = 1, $rowspan = 1) {
        if ($id == '' or !isset($id) or $id == null)
            $id = 'sin_id';
        if ($width == '' or !isset($width) or $width == null)
            $width = 'auto';
        if ($align == '' or !isset($align) or $align == null)
            $align = 'left';
        else if ($align == 'l' or $align == 'L' or $align == 'left' or $align == 'LEFT')
            $align = 'left';
        else if ($align == 'c' or $align == 'C' or $align == 'center' or $align == 'CENTER')
            $align = 'center';
        else if ($align == 'r' or $align == 'R' or $align == 'rigth' or $align == 'RIGHT')
            $align = 'rigth';
        else
            $align = $align;

        $texto = $this->colorear($busq, $texto);
        $size = '12px';
        if (isset($numero) or $numero != '')
            $texto = $this->leermas($texto, $numero, $cantidad);
        echo "<td id='$id' width='$width' align='$align' valign='top' colspan='$colspan' rowspan='$rowspan'><font color='#545454' style='font-size:$size;' align='$align'>&nbsp;$texto&nbsp;</font></td>";
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion colorear
      Esta Funcion recibe como parametros:
      $busq: cadena devuelta por el buscador
      $cadena: cadena donde se busca

      Ejemplo:
      echo $this->Interfaz->colorear('hola','holamundo');
     * */
    function colorear($busq, $cadena) {
        $size = '12px';
        $nombrex = str_replace(strtolower($busq), '<font id="resf1' . date('is') . '" size="-1" color="#FF0000" style="background-color:#D9E7F8; font-size:' . $size . ';"><b>' . ucwords($busq) . '</b></font>', strtolower($cadena));
        return $nombrex = ucwords($nombrex);
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion mayus
      Esta Funcion recibe como parametros:
      $texto: cadena de texto a pasar a mayuscula

      Ejemplo:
      echo $this->Interfaz->mayus('holamundo');
     * */
    function mayus($texto) {
        return strtr(strtoupper($texto), "àèìòùáéíóúçñäëïöü", "ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ");
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion formulario
      Esta Funcion recibe como parametros:
      $nombre: nombre del Formulario
      $ruta: Direccion de la funcion que sera llamada al momento de enviar el formulario
      $update: Identificador del elemento (div o spam preferiblemente) donde se visualizara el resultado
      $value: Texto del Boton
      $pre: Pregunta a realizar antes de enviar el formulario
      $tipo: es opcional Tipo de msj cargando a mostrar (cargando o guardando)
      Nota: es opcional Como el formulario debe llevar una etiqueta de apertura y una de cierre, se debe llamar a la funcion dependiendo de lo que se desee Usar
      Ejemplo:
      Para Iniciar el Formulario
      echo $this->Interfaz->formulario('nombre');
      esto creara <form='nombre' id='nombre'>
      Para finalizar el Formulario
      echo $this->Interfaz->formulario('nombre','TuControlador/Tu_Funcion','div_guardar','Guardar');
      echo $this->Interfaz->formulario('nombre','TuControlador/Tu_Funcion','div_guardar','Guardar','tu pregunta?','guardando');
      esto creara <input type='button' value='Guardar'>
      </form>
     * */
    function formulario($nombre = null, $opciones = array()) {
        if(!empty($nombre)){
            $defecto = array('method' => 'POST', 'action' => '#');
            $opciones = array_merge($defecto, $opciones);
            $valor = "<form name='$nombre' id='$nombre'";
            foreach ($opciones as $indice => $valores)
                $valor .= " $indice='$valores'";
            echo $valor .= ">";
        } else 
            $valor = "</form>";
        
        return $valor;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion ajax
      Esta Funcion recibe como parametros:
      $ruta: Direccion de la funcion que sera llamada
      $update: Identificador del elemento (div o spam preferiblemente) donde se visualizara el resultado
      $valores: Es un arreglo opcional para indicar que valores se llevara, en este se indica los identificadores unicos(ID) de cada uno de los campos a enviar, el array debe tener el siguiente formato $array('nombre','apellido')
      $confirmar: Es un arreglo opcional con dos indices el primero es para indicar el identificador sobre el cual se debe hacer clik para levantar la pregunta (Comfirm) y el segundo parametro es la pregunta que se desea realizar, el arreglo debe estar de la siguiente manera $pregunta=array('id_fuente','Pregunta a realizar?')
      Nota: Esta funcion devuelve solo el llamado para su uso debe estar complementado con otro elemento
      Ejemplo:
      $evento= $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar');
      $evento= $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar',array('div1','div2','div3','div4'));
      $evento= $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar',array('div1','div2','div3','div4'),array('div_fuente','Tu Pregunta?'));
      $evento= $this->Interfaz->ajax('TuControlador/tu_funcion',NULL,array('div_fuente','Tu Pregunta?'));
      echo "<a onclick='$evento'>
     * */
    function ajax($ruta = null, $update = 'div_error_evento', $valores = null, $confirmar = array()) {
        /*
          if($valores!=null){ $valor="ajax('$ruta','$update','".implode(',', $valores)."');"; }
          else{ $valor="ajax('$ruta','$update');"; }
          if(isset($confirmar[0]) && isset($confirmar[1]))
          {
          $alert=" Ext.onReady(function(){
          Ext.get('".$confirmar[0]."').on('click', function(e){
          Ext.MessageBox.confirm('Confirmar', '".$confirmar[1]."', mifuncion);
          });
          function mifuncion(btn){
          if(btn=='yes'){".$valor."}
          };
          });";
          }
          else
          {
          $alert=$valor;
          }
         */
        if (isset($confirmar[0]) && isset($confirmar[1])) {
            if ($valores != null) {
                $valor = "ajax_pregunta('$ruta','$update','" . $confirmar[1] . "','" . implode(',', $valores) . "');";
            } else {
                $valor = "ajax_pregunta('$ruta','$update','" . $confirmar[1] . "');";
            }
        } else {
            if ($valores != null) {
                $valor = "ajax('$ruta','$update','" . implode(',', $valores) . "');";
            } else {
                $valor = "ajax('$ruta','$update');";
            }
        }
        $alert = $valor;
        return $alert;
    }
    
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion ajaxUnValor
      Esta Funcion recibe como parametros:
      $ruta: Direccion de la funcion que sera llamada
      $update: Identificador del elemento (div o spam preferiblemente) donde se visualizara el resultado
      $valores: Es un arreglo opcional para indicar que valores se llevara, en este se indica los identificadores unicos(ID) de cada uno de los campos a enviar, el array debe tener el siguiente formato $array('nombre','apellido')
      $confirmar: Es un arreglo opcional con dos indices el primero es para indicar el identificador sobre el cual se debe hacer clik para levantar la pregunta (Comfirm) y el segundo parametro es la pregunta que se desea realizar, el arreglo debe estar de la siguiente manera $pregunta=array('id_fuente','Pregunta a realizar?')
      Nota: Esta funcion devuelve solo el llamado para su uso debe estar complementado con otro elemento
      Ejemplo:
      $evento= $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar');
      $evento= $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar',array('div1','div2','div3','div4'));
      $evento= $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar',array('div1','div2','div3','div4'),array('div_fuente','Tu Pregunta?'));
      $evento= $this->Interfaz->ajax('TuControlador/tu_funcion',NULL,array('div_fuente','Tu Pregunta?'));
      echo "<a onclick='$evento'>
     * */
    function ajaxUnValor($ruta = null, $update = 'div_error_evento', $valores = null) {
        if ($valores != null) {
            $valor = "ajaxUnValor('$ruta','$update', $valores);";
        } else {
            $valor = "ajaxUnValor('$ruta','$update');";
        }
        
        return $valor;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion ajaxsimple
      Esta Funcion recibe como parametros:
      $ruta: Direccion de la funcion que sera llamada
      $update: Identificador del elemento (div o spam preferiblemente) donde se visualizara el resultado
      $valores: Es un arreglo opcional para indicar que valores se llevara, en este se indica los identificadores unicos(ID) de cada uno de los campos a enviar, el array debe tener el siguiente formato $array('nombre','apellido')
      $confirmar: Es un arreglo opcional con dos indices el primero es para indicar el identificador sobre el cual se debe hacer clik para levantar la pregunta (Comfirm) y el segundo parametro es la pregunta que se desea realizar, el arreglo debe estar de la siguiente manera $pregunta=array('id_fuente','Pregunta az realizar?')

      Ejemplo:
      echo $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar');
      echo $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar',array('div1','div2','div3','div4'));
      echo $this->Interfaz->ajax('TuControlador/tu_funcion','div_actualizar',array('div1','div2','div3','div4'),array('div_fuente','Tu Pregunta?'));
      echo $this->Interfaz->ajax('TuControlador/tu_funcion',NULL,array('div_fuente','Tu Pregunta?'));
     * */
    function ajaxsimple($ruta = null, $update = 'div_error_evento', $valores = null, $confirmar = null) {
        if ($valores != null) {
            $valor = "ajaxsimple('$ruta','$update','" . implode(',', $valores) . "');";
        } else {
            $valor = "ajaxsimple('$ruta','$update');";
        }

        if (isset($confirmar[0]) && isset($confirmar[1])) {
            $alert = "<script type='text/javascript'>
		Ext.require([
    		'Ext.window.MessageBox',
		    'Ext.tip.*'
			]);

		Ext.onReady(function(){
    		Ext.get('" . $confirmar[0] . "').on('click', function(e){
        		Ext.MessageBox.confirm('Confirmar', '" . $confirmar[1] . "', mifuncion);
    			});
				function mifuncion(btn){
				if(btn=='yes'){" . $valor . " }
			};
		});
		</script>
		";
        } else {
            $alert = $valor;
        }

        return $alert;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion windowopen
      $ruta= ruta a montar
      $img= src de la imagen a monstrar en el <a heref
      $width= tamaño en width de la ventana por defecto esta en 900px
      $height= tamaño en height de la ventana por defecto esta en 600px
      Nota: esta permite hacer un window.open javascritp
      Ejemplo:
      echo $this->Json->windowopen('/Tucontrolador/tufuncion','/img/foto.png',900,600);
      echo $this->Json->windowopen('/Tucontrolador/tufuncion','/img/foto.png');
     * */
    function windowopen($ruta, $img, $width = 900, $height = 600) {
        $valor = "<a href=\"$ruta\" onClick=\"window.open(this.href,\"\",\"width=$width,height=$height\"); return false;\" style=\"text-decoration:none;\">" . $img . "</a>";
        return $valor;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion checkbox
      $id= identificador unico del elemento
      $checked= true ó 1 para dejar activo el checked
      $otros: array para otros atributos validos para un checkbox, ejemplo onclick, onfocus...
      Ejemplo:
      echo $this->Interfaz->checkbox('miid',1,array('onclick'=>"alert('holamundo')"));
      echo $this->Interfaz->checkbox('miid');
     * */
    function checkbox($nombre, $checked = false, $otros = array()) {
        if ($checked === true or $checked === 1)
            $checked = true;
        else
            $checked = false;
        if (count($otros) > 0) {
            $otros['id'] = (isset($otros['id'])) ? $otros['id'] : $nombre;
            $otros['label'] = false;
            $otros['checked'] = $checked;
            $otros['div'] = false;
            $otros['error'] = false;
            $otros['class'] = (isset($otros['class'])) ? "inputn {$otros['class']}" : "inputn";
            $otros['hiddenField'] = false;
            return $this->Form->checkbox($nombre, $otros);
        } else {
            return $this->Form->checkbox($nombre, array('id' => $nombre, 'name' => $nombre, 'label' => false, 'checked' => $checked, 'div' => false, 'error' => false, 'class' => 'inputn', 'hiddenField' => false));
        }
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion radio
      $id= identificador unico del elemento
      $opcion= es un array que contiene el indice o valor a montar en cada input radio
      $v: valor seleccionado por defecto del input radio
      $otros: es un array que contiene otros atributos validos para un input radio
      Nota: para usar esta función su consulta debe ser por un “find” con la opción “all” de lo contrario el programador debe armar su propio array();

      Ejemplo:
      $options = array(1=>array('A' => 'A'),2=>array('B' => 'B'),3=>array('C' => 'C'),4=>array('D' => 'D'));
      echo $this->Interfaz->radio('miid', $options[1], 'B');
      echo $this->Interfaz->radio('miid', $options[2], 'B');
      echo $this->Interfaz->radio('miid', $options[3], 'B');
      echo $this->Interfaz->radio('miid', $options[4], 'B',array('onclick'=>"alert('mensaje')"));
     * */
    function radio($id, $opcion = NULL, $v = NULL, $otros = NULL) {
        foreach ($opcion as $key => $value) {
            $opcion[$key] = '';
        }
        if (count($otros) > 0) {
            $otros['legend'] = false;
            if (isset($v))
                $otros['value'] = $v;
        }
        else {
            $otros['legend'] = false;
            if (isset($v))
                $otros['value'] = $v;
        }
        $otros['name'] = $id;
        return $this->Form->radio($id, $opcion, $otros);
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion inputid
      esta funcion permite crear un campo oculto y encripta el valor pasado como parametro
      $nombre= identificador unico del elemento
      $value= valor que tendar en campo oculto

      Ejemplo:
      echo $this->Interfaz->inputid('miid', 'valor');

     * */
    function inputid($nombre, $value) {
        $value = $this->id($value);
        return $this->inputfinal($nombre, $value);
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion inputoculto
      esta funcion permite crear un campo oculto o tipo hidden
      $nombre= identificador unico del elemento
      $value= valor que tendar en campo oculto

      Ejemplo:
      echo $this->Interfaz->inputoculto('miid', 'valor');

     * */
    function inputoculto($nombre, $value, $id = null, $clase = null) {
        return $this->inputfinal($nombre, $value, $id, $clase);
    }

    function inputfinal($nombre, $value, $id = null, $clase = null) {
        $id = (!empty($id)) ? $id : $nombre;
        $clase .= ' inputnonly';
        $valor = $this->Form->input($nombre, array('id' => $id, 'name' => $nombre, 'value' => $value, 'readonly' => true, 'label' => false, 'type' => 'hidden', 'div' => false, 'error' => false, 'size' => 2, 'class' => $clase, 'maxlength' => 0));
        return $valor;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion input_fecha
      Esta Funcion recibe como parametros:
      $nombre: nombre del input
      $destino: Id con el que sera recibido en el metodo
      $value: valor por defecto en el campo
      $readonly: readonly valores 0 y 1 para su uso
      $requerido: si es 1 este campo es requerido
      $texto:ayuda Json texto descriptivo
      $placeholder= mensaje que aparecera en el campo

      $otros=arreglo de otros posibles atributos por ejemplo array('OnClick'=>"alert('holamundo')")
      Nota el evente onkeyup,onfocus no puede ser utilizado en ningun caso
      Ejemplo:

      echo $this->Interfaz->input_fecha('fecha_i_cal_','fecha','',0,1,'Fecha de Nacimiento del Funcionario');
      $has=date('d-m-').(date('Y')-18);
      $des=date('d-m-').(date('Y')-120);
      echo $this->Interfaz->calendario('fecha_i_cal_',null,$des,$has);
     * */
    function input_fecha($nombre = null, $destino = null, $value = null, $readonly = 0, $requerido = 1, $texto = 'nada', $placeholder = '', $otros = array(), $pre = 'nada') {
        if (!isset($nombre))
            $nombre = 'nombre_campo';
        if ($nombre != null or $nombre != 'nombre_campo') {
            if ($readonly === 1)
                $readonly = true;
            else
                $readonly = false;
            $valor = "";
            if ($texto != 'nada')
                $this->Json->tipsayuda($nombre, $texto);
            if ($pre == 'nada')
                $mids = $nombre . "_em";
            else
                $mids = $nombre . $pre . "_em";
            if (isset($value) and $value != '') {
                $value = explode('-', $value);
                $value = $value[2] . '-' . $value[1] . '-' . $value[0];
            }
            if (count($otros) > 0) {
                $otros['type'] = 'text';
                $otros['maxlength'] = 10;
                $otros['onfocus'] = "return liacamposfn('$nombre','$pre');";
                $otros['id'] = $nombre;
                $otros['value'] = $value;
                $otros['readonly'] = $readonly;
                $otros['label'] = false;
                $otros['error'] = false;
                $otros['size'] = $tamanio;
                $otros['class'] = $class;
                $otros['maxlength'] = $maximo;
                $otros['placeholder'] = $placeholder;
                $otros['onkeyup'] = "return validate(event,this.value,'$tipo','$nombre','$pre');";
                $valor = $this->Form->input($nombre, $otros) . ' <img id="calendariolevantar" src="/img/iconos/calendarios/calendario2.ico" border="0" align="absmiddle" style="cursor:pointer;">';
            } else {
                $valor = $this->Form->input($nombre, array('id' => $nombre, 'value' => $value, 'readonly' => $readonly, 'label' => false, 'type' => 'text', 'div' => false, 'error' => false, 'size' => 11, 'class' => 'inputn', 'maxlength' => 10, 'onkeyup' => "return validate(event,this.value,'fecha','$nombre','$pre');", 'placeholder' => $placeholder, 'onfocus' => "return liacamposfn('$nombre','$pre');")) . ' <img id="' . $nombre . 'calendariolevantar" src="/img/iconos/calendarios/calendario2.ico" border="0" align="absmiddle" style="cursor:pointer;">';
            }
            $em = $this->tipsrequerido($requerido, $nombre);
            $valor.="$em<span id='" . $mids . "'>&nbsp;</span>" . $this->Form->input($destino, array('id' => $destino, 'type' => 'hidden', 'value' => $nombre));
        }
        return $valor;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion evento
      esta funcion permite crear un evento para ser incluido en el paginador
      $div= identificador unico del elemento
      $accion= Resultado del llamado a la funcion url
      $img= Imagen o Texto que se visualizara en la Vista
      Ejemplo:
      echo $this->Interfaz->evento('divpregunta', 'evento o accion','imagen a mostrar');
     * */
    function evento($div = null, $accion = null, $img = null) {
        if (isset($div) && isset($accion) && isset($img)) {
            $div1 = $div . "xxx";
            return "<a style=\'cursor:pointer;\' align=\'left\' id=\'$div\' onclick=\'" . $accion . "\'>" . $img . "</a>";
        }
        else
            return null;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion url
      esta funcion permite crear un evento para ser incluido en el paginador
      $url= Direccion url a ser llamada
      $carga= div donde se cargara la url llamada
      $valores= es un arreglo de la forma array('id1','id2'....) representan todos los valores que seran enviados al metodo llamado en caso de no necesitarlo es null
      $pregunta= es un arreglo de la forma array('divdepregunta','tu pregunta') en caso de no necesitarlo el valor es null
      $permiso= variable definida que permite determinar si un usuario tiene o no permisos de realizar la accion
      Ejemplo:
      $eve_edit=$this->Interfaz->url("controlador/metodo","divvista"null,null,0);// No tiene Permiso
      $eve_edit=$this->Interfaz->url("controlador/metodo","divvista",array('v1','v2','v3'),null,1); // Tiene Permiso
      $eve_edit=$this->Interfaz->url("controlador/metodo","divvista",null,array("divpregunta","¿tu Pregunta?"),0); // No tiene Permiso
      $eve_edit=$this->Interfaz->url("controlador/metodo","divvista",rray('v1','v2','v3'),array("divpregunta","¿tu Pregunta?"),1); // Tiene Permiso

     * */
    function url($url = null, $carg = null, $valores = null, $pregunta = null, $permiso = 1) {
        if (isset($permiso) && $permiso == 1) {
            if (!empty($url) && !empty($carg)) {
                if (!empty($valores) && !empty($pregunta))
                    return str_replace("'", '"', $this->ajax($url, $carg, $valores, array($pregunta[0], $pregunta[1])));
                else if (!empty($valores) && empty($pregunta))
                    return str_replace("'", '"', $this->ajax($url, $carg, $valores));
                else if (empty($valores) && !empty($pregunta))
                    return str_replace("'", '"', $this->ajax($url, $carg, null, array($pregunta[0], $pregunta[1])));
                else
                    return str_replace("'", '"', $this->ajax($url, $carg));
            }
            else
                return null;
        }
        else {
            return $this->url_permiso($carg); //str_replace("'",'"',$this->ajax(PRINCIPAL."/permiso/".$carg,$carg));
        }
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion url_permiso
      esta funcion permite crear el evento sin permiso para ser incluido en el paginador
      $carga= div donde se cargara la vista sin permiso

      Ejemplo:
      $eve_edit=$this->Interfaz->url("divvista");
     * */
    function url_permiso($carg = null) {
        if (empty($carg))
            $carg = DOCULTO;
        return str_replace("'", '"', $this->ajax(PRINCIPAL . "/permiso/" . $carg, $carg));
    }

    function editor_web($tipo_vista = 1, $titulo = 'EDITOR DE CONTENIDOS WEB') {
        if ($tipo_vista == 1) {
            $this->Vista->iframe(DVENTANA, DVENTANA, $titulo, null, MKTIME, 'editor', 0, '80%', '90%');
        } else if ($tipo_vista == 0) {
            echo '<iframe id="aa' . MKTIME . '" src="' . editor . '" width="100%" height="100%" border="0" frameborder="0"></iframe>';
        }
    }

/////////////////////////////////////////////////////////// ESTAS FUNCIONES ESTAN POR REVICION //////////////////////////////////////////////

    function leermas($d = '', $z = 0, $cant = 25) {
        $canf = strlen($d);
        $cans = ($cant - 1);
        if ($canf > $cant) {
            $valor = "
		<div id='" . $z . "_datosadicionales' style='display:none; float:left;'>" . mb_substr($d, 0, $canf) . "
		<font size='1px' color='#CCCCCC' onclick=\"leermas('0','$z');\">  ...ocultar</font>
		<br /><br />
		</div>
		<div id='" . $z . "_leermasx' style='float:left;'>" . mb_substr($d, 0, $cant) . "
		<font size='1px' color='#CCCCCC'  onclick=\"leermas('1','$z');\">  ...leer</font>
		</div>
		";
        } else {
            $valor = mb_substr($d, 0, $cant);
        }
        return $valor;
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      PRIVADA tipsrequerido
     * */
    function tipsrequerido($requerido, $nombre) {
        $divds = $nombre . "_requerido";
        if ($requerido == 1)
            $em = "<em onmouseover=\"requeridoup('$divds');\" onmouseout=\"requeridodown('$divds');\"><font class='tooltip'>&nbsp;&nbsp;*&nbsp;&nbsp;</font></em>";
            else$em = '';
        return $em;
    }

    function ajaxbuscador($ruta = null, $update = 'div_error_evento', $array = null) {
        if ($array != null) {
            $valor = "ajaxbuscador(event,'$ruta','$update','" . implode(',', $array) . "');";
        } else {
            $valor = "ajaxbuscador(event,'$ruta','$update');";
        }
        $alert = $valor;
        return $alert;
    }

    /*
    echo $this->Interfaz->formatocedula('V-18070728',false);
    echo $this->Interfaz->formatocedula('V018070728');
    */
    function formatocedula($cedula,$guion=true) {
        if($guion){             
            return substr($cedula, 0, 1) . "-" . str_pad(substr($cedula, 1),8,'0',0);
        }
        else return substr($cedula, 0, 1) . str_pad(substr($cedula, 2),9,'0',0);
        
    }
    
    /*
    echo "<br />". $this->Interfaz->formatotelefono('0412-3427157',false);
    echo " --- ".$this->Interfaz->formatotelefono('04123427157');
    */
    
    function formatotelefono($tel,$guion=true) {
        if($guion) return substr($tel, 0, 4) . "-" . substr($tel, 4);
        else return substr($tel, 0, 4) . substr($tel, 5);
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion boton
      Esta Funcion recibe como parametros:
      $nombre: Valor del boton
      $ruta: Direccion de la funcion que sera llamada al momento de precionar el boton
      $update: Identificador del elemento (div o spam preferiblemente) donde se visualizara el resultado
      $valores: arreglo de los id que seran enviados como valores
      $pre: Pregunta a realizar antes de hacer el llamdo a la funcion
      $width: Tamaño del boton
      Ejemplo:
      echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar');
      echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar',array('id1,'id2','idn'));
      echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar',array('id1,'id2','idn'),array('div','¿pregunta?'));
      echo $this->Interfaz->boton('nombre','TuControlador/Tu_Funcion','div_actualizar',null,array('div','¿pregunta?'));
     * */
    function boton($nombre = 'Boton', $ruta, $update = 'div_error_evento', $valores = null, $pre = array(), $width = '135px') {
        $evento = $this->ajax($ruta, $update, $valores, $pre);
        $valor = "<input type='button' id='abuttonarchivo' value='$nombre' style=\"cursor:pointer;height:23px; width: $width;\" 
			class=\"x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon x-btn-center\"
			onclick=\"$evento\" />";
        return $valor;
    }

    function mayuscula($t) {
        return trim(addslashes(strtr(strtoupper($t), "àèìòùáéíóúçñäëïöü", "ÀÈÌÒÙÁÉÍÓÚÇÑÄËÏÖÜ")));
    }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
      Funcion boton_ventana
      Esta Funcion recibe como parametros:
      $nombre: Valor del boton
      $ruta: Direccion de la funcion que sera llamada al momento de precionar el boton

      $width: Tamaño del boton
      Ejemplo:
      $this->Interfaz->boton_ventana('Excel','Sigesp/reporte_excel_reporteador/1','100px');
     * */
    function boton_ventana($nombre, $ruta, $width = '135px') {
        $evento = 'onClick=window.open(\'' . $ruta . '\',\'\',\'900,600\'); return false;';
        $valor = "<input type='button' id='abuttonarchivo' value='$nombre' style=\"cursor:pointer;height:23px; width: $width;\" 
			class=\"x-btn-default-small x-noicon x-btn-noicon x-btn-default-small-noicon x-btn-center\"
			$evento />";
        return $valor;
    }

}

?>
